

// 导入必要模块
import {  WindLayer } from "ol-wind";
import OlMap from "ol/Map";

/** 
 * 
 * 用于加载风场 
 * 
 * */

// 定义一个接口来描述风数据, 么有使用（暂时保留）
interface WindData {
    u: number; // 风向东分量
    v: number; // 风向北分量
    speed: number; // 风速
    direction: number; // 风向 
}


export default class OlWindy_Manager {
    private map: OlMap;
    constructor(map: OlMap) {
        this.map = map;
    }

    /**
     * 初始化风场
     * @param windyData 初始化风场主图层
     * @returns 风场图层
     */
    initializationWindLayer(windyData: any) {
        // 初始化风图层
        const windLayer = new WindLayer(windyData, 
            {
            windOptions: {
                // colorScale: ["rgb(36,104, 180)", "rgb(60,157, 194)", "rgb(128,205,193 )", "rgb(151,218,168 )", "rgb(198,231,181)", "rgb(238,247,217)", "rgb(255,238,159)", "rgb(252,217,125)", "rgb(255,182,100)", "rgb(252,150,75)", "rgb(250,112,52)", "rgb(245,64,32)", "rgb(237,45,28)", "rgb(220,24,32)", "rgb(180,0,35)"],
                colorScale: ["rgb(255, 255, 255)","rgb(255, 255, 255)", "rgb(255, 255, 255)", "rgb(255, 255, 255)", "rgb(255, 255, 255)", "rgb(255, 255, 255)", "rgb(255, 255, 255)", "rgb(255, 255, 255)", "rgb(255, 255, 255)",  "rgb(36,104, 180)", "rgb(36,104, 180)", "rgb(36,104, 180)", "rgb(36,104, 180)", "rgb(36,104, 180)"],
                globalAlpha: 0.9,  // 粒子透明度
                maxAge: 80,  // 存活最大帧数
                velocityScale: 1 / 30,  // 粒子速度
                frameRate: 20,  // 每50贞绘制一次
                paths: 5000,  // 粒子数量
                generateParticleOption: false,
            },
        });
        //  设置图层显示优先级
        windLayer.setZIndex(5)
        return windLayer
    }

}   